As memories grow faster, denser and more complex, there is an increased demand on ABIST structures for logic and memory fault detection offering high speed and high test coverage, while at the same time consuming minimal area on the semiconductor chip. By way of example, FIG. 1 shows the block diagram architecture of a state of the art SRAM macro 10 provided with an ABIST unit 11. A similar architecture is described in U.S. Pat. No. 5,173,906 of common assignee. The functional units shown in FIG. 1, either form part of a stand-alone SRAM or the SRAM macro of logic array of an integrated circuit chip. In the latter case, the chip may include a plurality of such macros, each provided with its own dedicated ABIST unit. The integrated circuit chip described is part of a wafer fabricated in a very large scale integration (VLSI) semiconductor technology and is presumed to be designed according to level-sensitive scan design (LSSD) rules.
As known to those skilled in the art, the SRAM macro 10 of FIG. 1 has three basic modes of operation: a SYSTEM mode, in which the SRAM macro 10 operates normally, i.e., where the memory unit 12 is either read or written, using the data-in signals DATAIN1 to DATAINM, the SRAM address signals ADDINl to ADDINP, and the read/write control signal R/WIN (wherein M and P are, respectively the bit widths of the data-in bus DATAIN and the SRAM address bus ADDIN). A second mode is required to satisfy LSSD requirements: the SCAN mode which is used for initializing/analyzing (SCAN-IN/SCAN-OUT) all the data of the latch pairs forming an LSSD chain. Finally, a third mode, the ABIST mode, in which the functionality of memory unit 12 is tested. It is a self-test which is first performed in a manufacturing environment before the chip is commercially released. A slightly different, more relaxed self-test is performed while the chip is incorporated in the system, for example, at the customer location, and thus in a system environment. As a result, the ABIST mode is used in a different environment referred to hereinafter as the ABIST manufacturing sub-mode and the ABIST system sub-mode.
In the ABIST mode, according to fundamentals of the self-test technique, the ABIST unit 11 generates a plurality of test patterns. Each test pattern consists of a set of deterministic 0's and 1's that are first written into memory 12, read out and compared with an expected pattern. The test pattern sequences play a key role in exercising the memory unit 12 to verify whether the memory unit 12 under test is functioning properly, i.e., to determine whether the READ and WRITE operations have been successfully executed. To that end, ABIST unit 11 generates self-test data signals STDATA, self-test address signals STADD, and the self-test read/write address signals STADD, and the self-test read/write control signal STRW.
Three groups of multiplexers select the signals to be fed to the memory unit 12. They include either the external signals mentioned above which are generated outside the SRAM macro 10, namely, DATAIN1 . . . DATAINM, ADDIN1 . . . ADDINP, and R/WIN or, alternatively, internal self-test signals generated by the ABIST unit 11 previously mentioned, namely, the STDATA, STADD, and STRW signals. The multiplexers forming these three groups are respectively referenced 13-1 to 13-M, 13'-1 to 13'-P, and 13". The selection is made by the ABIST control signal. Normally, external signals are selected when the ABIST signal is held at a logic "0", whereas when signals internally generated by the ABIST unit 11 are selected, it is held at a logic "1". The ABIST signal thus allows SRAM macro 10 to operate either in the SYSTEM mode or in the ABIST mode. The three groups of multiplexers, i.e., 13-1 to 13-M, 13'-1 to 13'-P, and 13' form multiplexer block 13. The outputs of the first and second groups are labelled DATA bus and ADD bus, with M and P as their respective bit widths. The output of multiplexer 13" is a single line that transports the R/W control signal that determines the READ/WRITE operating mode of memory 12.
The data-out signals that are outputted by memory 12 are stored in a plurality of data-out L1/L2 pairs of latches (14-1 to 14-M) forming the data-out shift register 14. Generally, these data-out latch pairs are incorporated into the memory 12. The data-out signals that are outputted by the L1 and L2 latch pairs are labelled DATAOUT1 to DATAOUTM (DATAOUT bus), and DOUT1 to DOUTM (DOUT bus), respectively.
In the ABIST mode, after performing a READ operation, expected data signals (EXDATA) are generated by ABIST 11 on the EXDATA bus and compared in the data compression unit 15 via data-out signals DOUT1 to DOUTM. Typically, only four test patterns are used in each word of memory 12: alternating 0's and 1's, i.e., 0101 . . . 01 and 1010 . . . 10, all 0's and all 1's. Alternatively, there are only four self-test data signals, labelled STDATA0, STDATA1 and their respective complements. Because of the particular structure of these four test patterns, the data-out signals DOUT1 to DOUTM are divided into even and odd data-out signals. The even data-out signals that are outputted from the data-out shift register unit 14 are labelled DOUT2, DOUT4, . . . , DOUT2j, and likewise, the odd data-out signals are labelled DOUT1, DOUT3, . . . , DOUT(2j-1), wherein j is an integer equal to M/2, assuming that M is an even number. Since all the even and odd numbered bits of the data-out signals have simultaneously the same "0" or "1" value, only two expected data signals are required, each consisting of a single bit, EXDATA0 and EXDATA1. For instance, assuming that the data-out signals to be read on the DOUT bus are: 010101 . . . 01, the expected data signal EXDATA0 (for the even numbered bits) will be "1" and the expected data signal EXDATA1 (for the odd numbered bits) a "0". EXDATA0 and EXDATA1 are thus the expected results of the even and odd data-out signals, respectively. Finally, data compression unit 15 generates a signal labelled RESULT which is held at a "1" if a mismatch occurs during the comparison. By mismatch it is to be understood that at least one data-out signal does not have the same logic value as its corresponding even or odd expected data generated by the ABIST structure 11. This mismatch is often caused by a defective word line in the memory unit 12 at a predetermined address. This mismatch is usually referred to as a "fail". Alternatively, if all data-out signals match the corresponding even or odd expected data signals (which means no fall is detected), the RESULT signal is held at "0". The RESULT signal, which is often referred to as the FAIL FOUND LAST CYCLE signal, indicates after completing a READ operation, whether the memory unit 12 at the current address being tested is defective. The RESULT signal is thus indicative of the fail/no fail status of memory unit 12 on a cycle by cycle basis.
Another key component of the prior art SRAM macro 10 is the fail register unit 16. It is required because, in the ABIST manufacturing sub-mode, the addresses of the defective word lines have to be identified, then memorized for subsequent use in the SYSTEM mode. When the RESULT signal is raised to a logic "1", indicating the presence of a fail, the word portion of the current address generated by the ABIST unit 11 on the STADD bus, (labelled STADD*), is stored in a bank of pairs or latches of this fail address register unit 16. This stored word address thus corresponds to the address of a defective word line.
The ABIST unit 11 also generates a CNOOP (NOOP stands for NO OPERATION) signal to inhibit the ABIST self-test mode, when the totality of the test pattern sequences has been fully exercised on the memory unit 12. This signal is required when there is a plurality of SRAM macros embedded in a single semiconductor chip. The macros may have different sizes that require varying durations for their respective test. The CNOOP signal generated by the ABIST unit of each SRAM macro allows the memory units of all macros to be simultaneously tested.
Clocking of SRAM macro 10 is achieved using standard procedures in accordance with LSSD rules. In the state of the art architecture of a SRAM macro, as illustrated in FIG. 1, clocking would normally be implemented by standard external LSSD clock signals labelled A, B, C, S and CS (CHIP SELECT for a stand-alone SRAM chip or ARRAY SELECT for a SRAM macro). Note that the S clock signal, which is substantially the same as the B clock signal, is applied to the L2 latches of latch pairs 14-1 to 14-M of data-out shift register 14. In the ABIST manufacturing sub-mode, the clock and CS signals are derived from the tester. In the ABIST system sub-mode, these signals are generated by the system clock. The SCAN-IN (SI) signal is applied to the ABIST unit 11 according to the standard LSSD rules, as illustrated in FIG. 1. However, for sake of simplicity, the SCAN-OUT signal generated by the ABIST 11 in response to the SCAN-IN signal to be applied to the next latch pair, etc., along the whole LSSD chain, is not shown. In the following description, only latches will be referred to, while it is clear that according to LSSD rules, they are in reality pairs of latches. All these signals are directly applied to ABIST unit 11 and/or to the memory 12, except for the C clock and CS signals. The C clock signal is applied to one input of a 2-way AND gate 17A. The CS signal is applied to one input of the 2-way AND gate 17B. The CNOOP signal is applied to the second input of AND gates 17A and 17B as a gating signal in order to block, when needed, the transmission of the respective C clock and CS signal. This occurs when the self-test has been completed in the ABIST mode, and permanently in the SYSTEM mode. The A, B, and S clock signals are used during the SCAN mode, whereas the B, C, S and CS signals are used during the ABIST mode. The CS signal is used alone in the SYSTEM mode while and the LSSD clock signals are held in a non-active state. Numeral 18 schematically illustrates the clock distribution scheme in the SRAM macro 10 and also includes the internal chip clock distribution network servicing it. This terminates the description of a state of the art SRAM macro provided with an ABIST structure.
The state of the art ABIST described in U.S. Pat. No. 5,173,906 is organized around a state machine approach for determining self-test data and self-test read/write stimuli on a cycle by cycle basis. According to the previously described ABIST, the generation of self-test data STDATA, self-test address STADD, and self-test read/write STRW signals implies the use of a large number of combinational logic circuits which is based on a hard-coded mechanism. Moreover, this mechanism is known to be relatively slow and with limited programmability. As a result, a higher level of complexity in the state machine logic circuitry would be required to meet the present demand (expected to grow in the future) for the ABIST self-test of high speed SRAM macros with ever decreasing memory access times. The conventional state machine based unit described in the above cited reference has typically a system cycle time of 10-13 ns for a CMOS SRAM macro which requires nine logic levels of data generation and state machine logic circuitry, leading to a total of about 200 logic gates. This large number not only unfavorably impacts the memory access time measurement and ABIST cycle time, but also results in an excessive consumption of the semiconductor chip real estate. Consequently, there is today a strong need for developing new ABIST structures wherein the above mentioned intrinsic limitations or drawbacks are overcome.